import 'package:flutter/material.dart';
import 'package:magic_car/UI/Loading.dart';
import 'package:magic_car/jiance/jiance_detail.dart';
import 'package:magic_car/util/HttpHelper.dart';
import 'package:shared_preferences/shared_preferences.dart';

import 'package:toast/toast.dart';

class InspectOrderPage extends StatefulWidget {
  final String id;
  final String issite;
  InspectOrderPage(this.id,this.issite);
  @override
  State<StatefulWidget> createState() {
    return new ActState(this.id,this.issite);
  }
}

class ActState extends State<InspectOrderPage> with SingleTickerProviderStateMixin {
  final String id;
  final String issite;
  ActState(this.id,this.issite);
  List<Choice> _tabs = [];
  TabController mTabController;
  int mCurrentPosition = 0;
  int type = 0;
  List orders = [];
  Map userinfo = new Map();
  bool isInspector = true;
  bool endtest = false;
  int page = 1;
  ScrollController _controller = new ScrollController();
  @override
  @override
  Widget build(BuildContext context) {
    return
        // new MaterialApp(

        //   debugShowCheckedModeBanner: false,

        // home:
        new Scaffold(
          body: new ListView(
            controller: _controller,
                     children: <Widget>[buildcontent()],
        
        ),
      appBar: new AppBar(
         iconTheme: IconThemeData(
          color: Colors.black, //修改颜色
        ),
        backgroundColor: Colors.white,
        elevation: 0,
        title: new Text(
          '订单',
          style: TextStyle(color: Colors.black),
        )),
       
        
      //   backgroundColor: Colors.white,
      //   elevation: 0,
      //   bottom: new TabBar(
      //     indicatorSize: TabBarIndicatorSize.label,
      //     indicatorColor: Color.fromRGBO(27, 182, 251, 1),
      //     labelColor: Color.fromRGBO(27, 182, 251, 1),
      //     unselectedLabelColor: Colors.black45,
      //     tabs: _tabs.map((Choice choice) {
      //       return new Tab(
      //         text: choice.title,
      //       );
      //     }).toList(),
      //     controller: mTabController,
      //   ),
      // ),
      // body: new TabBarView(
      //   children: _tabs.map((Choice choice) {
      //     return new Padding(
      //         padding: const EdgeInsets.all(0.0),
      //         child: new Container(
      //             color: Color.fromRGBO(239, 239, 239, 1),
      //             child: new ListView(
      //               children: <Widget>[buildcontent()],
      //             )));
      //   }).toList(),
      //   controller: mTabController,
      // ),
      );
  }

  @override
  deactivate() async {
    var bool = ModalRoute.of(context).isCurrent;
   
  }

  @override
  void initState() {
    super.initState();
 _controller.addListener(() {
      if (_controller.position.pixels == _controller.position.maxScrollExtent) {
        
        loaddata();
      }
    });
    _tabs.add(Choice(title: '待处理', position: 0));
    // _tabs.add(Choice(title: '进行中', position: 1));
    // _tabs.add(Choice(title: '待评价', position: 2));
    _tabs.add(Choice(title: '已完成', position: 3));
    mTabController = new TabController(vsync: this, length: _tabs.length);
    //判断TabBar是否切换
    mTabController.addListener(() {
      if (mTabController.index == mCurrentPosition) return;
      print('滑动监听' + mTabController.index.toString());
      setState(() {
        mCurrentPosition = mTabController.index;
        if(mTabController.index==1){
          type=3;
        }else
        type = mTabController.index;
      });
      loaddata(); //滑动时加载数据
    });
    //loading();
    loaddata();
    // loaddata(); //页面展示时加载数据
    // loaduserinfo();
  }

  loaduserinfo() async {
    // LoadingPage loadpage = new LoadingPage(context);
    // loadpage.show();
    SharedPreferences pref = await SharedPreferences.getInstance();
    Map<String, String> map = new Map();
    map["id"] = pref.getString('uid');

    HttpHelper.post(HttpHelper.API_Userinfo, (data) async {
      //loadpage.close();
      if (data != null) {
        if (data["code"].toString() == "1") {
          if (data["info"]["avatar"].length != 0) {
            setState(() {
              // avatar = data["info"]["avatar"];
            });
          }
          var info = data["info"];
          if (info["isInspector"].toString() == "1") {
            //最终通过审核
            setState(() {
              isInspector = true;
            });
            loaddata(); //获取订单数据
          } else {
            setState(() {
              isInspector = false;
            });
            if (info["starttest"].toString() == "1") {
              //考试结束
              setState(() {
                endtest = true;
              });
            }
          }
          setState(() {
            userinfo = data["info"];
          });
          //pref.setStringList('userinfo', data["info"]);

        }
      }
    }, params: map);
  }

  //加载数据
  loaddata() async {
    Map<String, String> map = new Map();
    SharedPreferences pref = await SharedPreferences.getInstance();

    if (pref.getString('role') == "0") {
     // map["isspect"] = "1";
    } else if(pref.getString('role') == "1") {
     // map["issite"] = "1";
    }
    map['id']=this.id;
    if(this.issite=="1"){
      map["issite"] = "1";
    }else if(this.issite=="2"){
      map["bussiness"] = "1";
    }
    map['page']= page.toString();
    // print(pref.getStringList('userinfo'));
    //map["id"] = pref.getString('uid');
    // map["type"] = type.toString();

    print(map);
     String url = HttpHelper.API_SiteOrder;
    if(this.issite=='2'){
     url = HttpHelper.API_BussinessOrderList;
    }

    HttpHelper.post(url, (data) async {
      if (data != null) {
        print(data);
        //Toast.show(data["msg"],context);
       
        if (data["code"].toString() == "1") {
          setState(() {
            orders.addAll(data["info"]['list']);
           // orders = data["info"];
          });
          if(data["info"]['list'].length>0){
            page++;
          }
          //pref.setStringList('userinfo', data["info"]);

        }
      }
    }, params: map);
  }
  Future<Null> _onRefresh() async {
    await Future.delayed(Duration(seconds: 3), () {
      print('refresh');
      setState(() {
        page = 1;
      });
      loaddata();
    });
  }

  @override
  void dispose() {
    super.dispose();
    mTabController.dispose();
  }

//MediaQuery.of(context).size.height
  Widget buildcontent() {
    List<Widget> tiles = [];
    Widget content;
    if (orders.length == 0) {
      tiles.add(Center(
          child: Column(
              crossAxisAlignment: CrossAxisAlignment.center,
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
            Padding(
                padding: new EdgeInsets.fromLTRB(
                    15, MediaQuery.of(context).size.height / 2 - 100, 15, 0),
                child: new Text('暂无订单数据'))
          ])));
    } else {
      for (var i = 0; i < orders.length; i++) {
        var order = orders[i];
        tiles.add(Padding(
            padding: new EdgeInsets.fromLTRB(15, 10, 15, 0),
            child: Container(
              decoration: new BoxDecoration(
                color: Colors.white,
                borderRadius: BorderRadius.all(Radius.circular(10.0)),
              ),
              child: Column(
                children: <Widget>[
                  Padding(
                    padding: new EdgeInsets.fromLTRB(20, 10, 20, 10),
                    child: Row(
                      children: <Widget>[
                        Expanded(
                            flex: 2,
                            child: new Text(
                              order["order_sn"],
                              style: TextStyle(
                                  color: Color.fromRGBO(51, 51, 51, 1),
                                  fontSize: 13),
                            )),
                        Expanded(
                          flex: 1,
                          child: new Align(
                              alignment: Alignment.centerRight,
                              child: Container(
                                  padding: new EdgeInsets.fromLTRB(5, 2, 5, 2),
                                  color: Color.fromRGBO(27, 182, 251, 0.3),
                                  child: new Text(
                                    order["test_type"],
                                    style: TextStyle(
                                        color: Color.fromRGBO(27, 182, 251, 1),
                                        fontSize: 12),
                                  ))),
                        )
                      ],
                    ),
                  ),
                  // Padding(
                  //   padding: new EdgeInsets.fromLTRB(20, 10, 20, 10),
                  //   child: Row(
                  //     children: <Widget>[
                  //       Expanded(
                  //           flex: 1,
                  //           child: new Text(
                  //             '联系电话',
                  //             style: TextStyle(
                  //                 fontSize: 12,
                  //                 color: Color.fromRGBO(51, 51, 51, 1)),
                  //           )),
                  //       Expanded(
                  //         flex: 1,
                  //         child: new Align(
                  //             alignment: Alignment.centerRight,
                  //             child: Container(
                  //                 child: new Text(
                  //               order["phone_num"],
                  //               style: TextStyle(
                  //                   color: Color.fromRGBO(153, 153, 153, 1),
                  //                   fontSize: 12),
                  //             ))),
                  //       )
                  //     ],
                  //   ),
                  // ),
                  Padding(
                    padding: new EdgeInsets.fromLTRB(20, 0, 20, 10),
                    child: Row(
                      children: <Widget>[
                        Expanded(
                            flex: 1,
                            child: new Text(
                              '预约时间',
                              style: TextStyle(
                                  fontSize: 12,
                                  color: Color.fromRGBO(51, 51, 51, 1)),
                            )),
                        Expanded(
                          flex: 1,
                          child: new Align(
                              alignment: Alignment.centerRight,
                              child: Container(
                                  child: new Text(
                                order['order_time'],
                                style: TextStyle(
                                    color: Color.fromRGBO(153, 153, 153, 1),
                                    fontSize: 12),
                              ))),
                        )
                      ],
                    ),
                  ),
                  // Padding(
                  //   padding: new EdgeInsets.fromLTRB(20, 0, 20, 10),
                  //   child: Row(
                  //     children: <Widget>[
                  //       Expanded(
                  //           flex: 1,
                  //           child: new Text(
                  //             '订单金额',
                  //             style: TextStyle(
                  //                 fontSize: 12,
                  //                 color: Color.fromRGBO(51, 51, 51, 1)),
                  //           )),
                  //       Expanded(
                  //         flex: 1,
                  //         child: new Align(
                  //             alignment: Alignment.centerRight,
                  //             child: Container(
                  //                 child: new Text(
                  //               '¥' + order['orderPrice'],
                  //               style: TextStyle(
                  //                   color: Color.fromRGBO(251, 73, 57, 1),
                  //                   fontSize: 12),
                  //             ))),
                  //       )
                  //     ],
                  //   ),
                  // ),
                  // Padding(
                  //   padding: new EdgeInsets.fromLTRB(20, 0, 20, 10),
                  //   child: Row(
                  //     children: <Widget>[
                  //       Expanded(
                  //           flex: 1,
                  //           child: new Text(
                  //             '汽车品牌',
                  //             style: TextStyle(
                  //                 fontSize: 12,
                  //                 color: Color.fromRGBO(51, 51, 51, 1)),
                  //           )),
                  //       Expanded(
                  //         flex: 1,
                  //         child: new Align(
                  //             alignment: Alignment.centerRight,
                  //             child: Container(
                  //                 child: new Text(
                  //               order["brand_string"]["name"],
                  //               style: TextStyle(
                  //                   color: Color.fromRGBO(153, 153, 153, 1),
                  //                   fontSize: 12),
                  //             ))),
                  //       )
                  //     ],
                  //   ),
                  //),
                  Padding(
                    padding: new EdgeInsets.fromLTRB(20, 0, 20, 10),
                    child: Row(
                      children: <Widget>[
                        Expanded(
                            flex: 1,
                            child: new Text(
                              '状态',
                              style: TextStyle(
                                  fontSize: 12,
                                  color: Color.fromRGBO(51, 51, 51, 1)),
                            )),
                        Expanded(
                          flex: 1,
                          child: new Align(
                              alignment: Alignment.centerRight,
                              child: Container(
                                  child: new Text(
                                order["status_str"],
                                style: TextStyle(
                                    color: Color.fromRGBO(153, 153, 153, 1),
                                    fontSize: 12),
                              ))),
                        )
                      ],
                    ),
                  ),
                  Padding(
                    padding: new EdgeInsets.fromLTRB(20, 10, 20, 10),
                    child: Align(
                        alignment: Alignment.centerRight,
                        child: new Container(
                          child: new Material(
                            //INK可以实现装饰容器
                            child: new Ink(
                              //用ink圆角矩形
                              // color: Colors.red,
                              decoration: new BoxDecoration(
                                //背景
                                color: Colors.white,
                                //设置四周圆角 角度
                                borderRadius:
                                    BorderRadius.all(Radius.circular(15.0)),
                                //设置四周边框
                                border: new Border.all(
                                    width: 1,
                                    color: Color.fromRGBO(27, 182, 251, 1)),
                              ),
                              child: new InkWell(
                                  //圆角设置,给水波纹也设置同样的圆角
                                  //如果这里不设置就会出现矩形的水波纹效果
                                  borderRadius: new BorderRadius.circular(15.0),
                                  //设置点击事件回调
                                  onTap: () {
                                    Navigator.of(context).push(
                                        new MaterialPageRoute(builder: (_) {
                                      return new JIanceDetailPage(
                                          order["id"].toString());
                                    }));
                                  },
                                  child: Container(
                                    //设置 child 居中
                                    alignment: Alignment(0, 0),
                                    height: 30,
                                    width: 85,
                                    child: Text(
                                      "查看订单",
                                      style: TextStyle(
                                          color:
                                              Color.fromRGBO(27, 182, 251, 1)),
                                    ),
                                  )),
                            ),
                          ),
                        )
                        // child: new RaisedButton(
                        //   child: Text('申请补考'),
                        //   onPressed: () {},
                        // ),
                        ),
                  ),
                ],
              ),
            )));
      }
    }
    content = new Column(
        children: tiles //重点在这里，因为用编辑器写Column生成的children后面会跟一个<Widget>[]，
        //此时如果我们直接把生成的tiles放在<Widget>[]中是会报一个类型不匹配的错误，把<Widget>[]删了就可以了
        );
    return content;
  }
}

Widget buttons() {
  Widget button = Container(
    margin: EdgeInsets.only(left: 40, top: 40),
    child: new Material(
      //INK可以实现装饰容器
      child: new Ink(
        //用ink圆角矩形
        // color: Colors.red,
        decoration: new BoxDecoration(
          //背景
          color: Colors.white,
          //设置四周圆角 角度
          borderRadius: BorderRadius.all(Radius.circular(25.0)),
          //设置四周边框
          border: new Border.all(width: 1, color: Colors.red),
        ),
        child: new InkWell(
            //圆角设置,给水波纹也设置同样的圆角
            //如果这里不设置就会出现矩形的水波纹效果
            borderRadius: new BorderRadius.circular(25.0),
            //设置点击事件回调
            onTap: () {},
            child: Container(
              //设置 child 居中
              alignment: Alignment(0, 0),
              height: 50,
              width: 300,
              child: Text("点击 Container 圆角边框"),
            )),
      ),
    ),
  );
  return button;
}

class Choice {
  const Choice({this.title, this.icon, this.position});
  final String title;
  final int position;
  final IconData icon;
}
